home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Presentations / Presentations ’97 / Sessions ’97 / Multiplatform Code⁄Data Sharing / HelloBothWorlds / GE / LibHdr / GEQDBe.h < prev    next >
Encoding:
Text File  |  1996-11-03  |  3.2 KB  |  133 lines  |  [TEXT/CWIE]

  1. /*
  2.     GEQDBe.h
  3.     
  4.     Graphic Elements QD compatibility module for BeOS
  5.     
  6.     Copyright 1996 by Al Evans. All rights reserved.
  7.     
  8.     
  9. */
  10.  
  11. // Analogs of Mac QuickDraw entities and calls for BeOS version
  12.  
  13. // Mac-compatible Point and Rect
  14.  
  15. typedef struct {
  16.     long    h;
  17.     long    v;
  18. } Point;
  19.  
  20. typedef enum {v, h} VHSelect;
  21.  
  22. typedef struct {
  23.     long    top;
  24.     long    left;
  25.     long    bottom;
  26.     long    right;
  27. } Rect;
  28.  
  29. void BRectToGERect(BRect *br, Rect *r);
  30. void GERectToBRect(Rect *r, BRect *br);
  31.  
  32. typedef BRegion *RgnHandle;
  33.  
  34. #define srcCopy     B_OP_COPY
  35. #define srcOr       B_OP_OVER
  36. #define transparent B_OP_OVER
  37.  
  38. // Mac-compatible text styles
  39. // Not presently implemented for the BeBox
  40.  
  41. #define normal        0
  42. #define bold        1
  43. #define italic        2
  44. #define underline    4
  45. #define outline        8
  46. #define shadow        16
  47. #define condense    32
  48. #define extend        64
  49.  
  50. typedef struct font_info FontInfo;
  51.  
  52. typedef BView        *BViewPtr;
  53. typedef BBitmap        *BitMap;
  54.  
  55. typedef struct {
  56.     Rect        portRect;
  57.     BViewPtr    portWindow;    // nil except for geWorld->gEWPort
  58.     BitMap        portBits;
  59. } GWorld, *GWorldPtr;
  60.  
  61. // As used in Graphic Elements, these are all equivalent
  62. typedef GWorldPtr GrafPtr;
  63. typedef GWorldPtr CGrafPtr;
  64.  
  65. // Ugly, but usage is the same
  66. typedef BitMap PixMapHandle;
  67.  
  68. // Mac-compatible RGBColor
  69. typedef struct RGBColor {
  70.     unsigned short red;
  71.     unsigned short green;
  72.     unsigned short blue;
  73. } RGBColor;
  74.  
  75. typedef ulong OSType;
  76. typedef long GDHandle;            // placeholder, nothing comparable on BeBox
  77. typedef color_map *CTabHandle;    // not useful as of 1.1d6
  78. typedef ulong Fixed;
  79.  
  80. typedef long OSErr;
  81.  
  82. // Flag to create GWorld which accepts views
  83. #define gWorldAcceptsViews 1
  84.  
  85. OSErr NewGWorld( GWorldPtr *offscreenGWorld,
  86.                  short  offscrnDepth,
  87.                  Rect *boundsRect,
  88.                  CTabHandle worldColors, GDHandle aGDevice, unsigned long flags);
  89.  
  90. void DisposeGWorld(GWorldPtr world);
  91. inline void DisposCTable(CTabHandle cTable) {};        // not useful as of 1.1d6
  92.  
  93. void GetPort (GrafPtr * savePort);
  94. void SetPort (GrafPtr newPort);
  95. void SetOrigin(short h, short v);
  96. void InvalRect(Rect * invalRect); // causes repaint
  97.  
  98. inline RgnHandle NewRgn() {return new BRegion();}
  99. inline void DisposeRgn(RgnHandle rgn) {delete rgn;}
  100. void RectRgn(RgnHandle region, Rect *newRect);
  101. inline void CopyRgn(RgnHandle source, RgnHandle dest) {dest = source;}
  102. inline void OffsetRgn(RgnHandle r, short dh, short dv) {r->OffsetBy(dh, dv);}
  103. void SectRgn(RgnHandle a, RgnHandle b, RgnHandle result);
  104. void DiffRgn(RgnHandle a, RgnHandle b, RgnHandle result);
  105.  
  106. void UnionRgn(RgnHandle a, RgnHandle b, RgnHandle result);
  107.  
  108. inline Boolean PtInRgn(Point pt, RgnHandle rgn) {return (rgn->Contains(BPoint(pt.h,pt.v)));}
  109. Boolean PtInRect(Point pt, Rect *rect);
  110.  
  111. void GetGWorld(CGrafPtr *port, GDHandle *gdh);
  112. void SetGWorld(CGrafPtr port, GDHandle gdh);
  113. PixMapHandle GetGWorldPixMap(GWorldPtr world);
  114.  
  115. // Used only in TextGE
  116. void ClipRect(Rect *rect);
  117.  
  118. // Not needed for BeOS version
  119. #define GlobalToLocal(Point)
  120. #define LockPixels(PixMapHandle)
  121. #define NoPurgePixels(PixMapHandle)
  122.  
  123. void EraseRect(Rect * r);
  124.  
  125. GE_CALLBACK(void,CopyBits)(const BitMap *srcBits, const BitMap *dstBits,
  126.                         const Rect *srcRect, const Rect *dstRect, short mode, RgnHandle maskRgn);
  127.  
  128. #define FastCopyBits QuickCopyBits
  129.  
  130.  
  131.  
  132.  
  133.